/**
 * API 接口管理
 */

const BASE_URL = 'https://your-api-server.com';

/**
 * 封装请求
 * @param {String} url 请求地址
 * @param {Object} data 请求数据
 * @param {String} method 请求方法
 * @returns {Promise}
 */
function request(url, data = {}, method = 'GET') {
  return new Promise((resolve, reject) => {
    wx.request({
      url: BASE_URL + url,
      data,
      method,
      header: {
        'content-type': 'application/json',
        'token': wx.getStorageSync('token') || ''
      },
      success: (res) => {
        if (res.statusCode === 200) {
          if (res.data.code === 0) {
            resolve(res.data.data);
          } else {
            wx.showToast({
              title: res.data.message || '请求失败',
              icon: 'none'
            });
            reject(res.data);
          }
        } else {
          wx.showToast({
            title: '网络请求失败',
            icon: 'none'
          });
          reject(res);
        }
      },
      fail: (err) => {
        wx.showToast({
          title: '网络连接失败',
          icon: 'none'
        });
        reject(err);
      }
    });
  });
}

/**
 * 用户相关接口
 */
const userAPI = {
  // 登录
  login: (data) => request('/api/user/login', data, 'POST'),
  
  // 获取用户信息
  getUserInfo: () => request('/api/user/info'),
  
  // 更新用户信息
  updateUserInfo: (data) => request('/api/user/update', data, 'POST'),
};

/**
 * 健康相关接口
 */
const healthAPI = {
  // 获取健康数据
  getHealthData: (date) => request('/api/health/data', { date }),
  
  // 添加健康数据
  addHealthData: (data) => request('/api/health/add', data, 'POST'),
  
  // 获取用药提醒列表
  getMedicineList: () => request('/api/health/medicine/list'),
  
  // 添加用药提醒
  addMedicine: (data) => request('/api/health/medicine/add', data, 'POST'),
};

/**
 * 服务相关接口
 */
const serviceAPI = {
  // 获取服务列表
  getServiceList: (params) => request('/api/service/list', params),
  
  // 获取服务详情
  getServiceDetail: (id) => request(`/api/service/detail/${id}`),
  
  // 预约服务
  bookService: (data) => request('/api/service/book', data, 'POST'),
  
  // 获取订单列表
  getOrderList: () => request('/api/service/order/list'),
};

/**
 * 活动相关接口
 */
const activityAPI = {
  // 获取活动列表
  getActivityList: (params) => request('/api/activity/list', params),
  
  // 获取活动详情
  getActivityDetail: (id) => request(`/api/activity/detail/${id}`),
  
  // 报名活动
  joinActivity: (id) => request('/api/activity/join', { id }, 'POST'),
  
  // 取消报名
  cancelActivity: (id) => request('/api/activity/cancel', { id }, 'POST'),
};

/**
 * 资讯相关接口
 */
const newsAPI = {
  // 获取资讯列表
  getNewsList: (params) => request('/api/news/list', params),
  
  // 获取资讯详情
  getNewsDetail: (id) => request(`/api/news/detail/${id}`),
};

module.exports = {
  request,
  userAPI,
  healthAPI,
  serviceAPI,
  activityAPI,
  newsAPI
};
